using EOSDigital.SDK;
using System.Collections.Generic;

namespace EOSDigital.API
{
	public sealed class EvfAfModeValues : ValueBase
	{
		private static List<CameraValue> values;

		public static CameraValue[] Values
		{
			get
			{
				return EvfAfModeValues.values.ToArray();
			}
		}

		static EvfAfModeValues()
		{
			EvfAfModeValues.values = new List<CameraValue>
			{
				new CameraValue("Quick mode", 0, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("单点自动", 1, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("面部优先+追踪自动", 2, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("FlexiZone - Multi", 3, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("区域自动", 4, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("Expand AF area", 5, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("Expand AF area: Around", 6, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("Large Zone AF: Horizontal", 7, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("Large Zone AF: Vertical", 8, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("Catch AF", 9, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("定点自动", 10, 0.0, PropertyID.Evf_AFMode),
				new CameraValue("unknown", -1, 0.0, PropertyID.Evf_AFMode)
			};
		}

		public static CameraValue GetValue(int value)
		{
			return ValueBase.GetValue(value, EvfAfModeValues.values);
		}

		public static CameraValue GetValue(string value)
		{
			return ValueBase.GetValue(value, EvfAfModeValues.values);
		}

		public static CameraValue GetValue(double value)
		{
			return ValueBase.GetValue(value, EvfAfModeValues.values);
		}
	}
}
